home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Knight / Knight.jar / KnightCanvas.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-11-12  |  6.7 KB  |  400 lines

  1. import java.util.Date;
  2. import java.util.Random;
  3. import javax.microedition.lcdui.Canvas;
  4. import javax.microedition.lcdui.Font;
  5. import javax.microedition.lcdui.Graphics;
  6. import javax.microedition.lcdui.Image;
  7. import javax.microedition.midlet.MIDlet;
  8.  
  9. public class KnightCanvas extends Canvas implements Runnable {
  10.    // $FF: renamed from: q int
  11.    int field_0;
  12.    // $FF: renamed from: char int
  13.    int field_1;
  14.    // $FF: renamed from: g int
  15.    static final int field_2 = 12;
  16.    // $FF: renamed from: void int
  17.    static final int field_3 = 10;
  18.    // $FF: renamed from: goto int
  19.    static final int field_4 = -1;
  20.    // $FF: renamed from: else int
  21.    static final int field_5 = 1;
  22.    // $FF: renamed from: b int
  23.    static final int field_6 = 2;
  24.    // $FF: renamed from: m int
  25.    static final int field_7 = 99999;
  26.    // $FF: renamed from: p int
  27.    static final int field_8 = 0;
  28.    // $FF: renamed from: l int
  29.    static final int field_9 = 1;
  30.    // $FF: renamed from: a int
  31.    static final int field_10 = 2;
  32.    // $FF: renamed from: null int
  33.    static final int field_11 = 3;
  34.    // $FF: renamed from: n int
  35.    static final int field_12 = 4;
  36.    // $FF: renamed from: j int
  37.    static final int field_13 = 5;
  38.    // $FF: renamed from: i javax.microedition.midlet.MIDlet
  39.    MIDlet field_14;
  40.    // $FF: renamed from: k javax.microedition.lcdui.Image
  41.    Image field_15;
  42.    // $FF: renamed from: d javax.microedition.lcdui.Image
  43.    Image field_16;
  44.    // $FF: renamed from: int javax.microedition.lcdui.Image
  45.    Image field_17;
  46.    // $FF: renamed from: for int
  47.    int field_18;
  48.    // $FF: renamed from: new int
  49.    int field_19;
  50.    // $FF: renamed from: e boolean[][]
  51.    boolean[][] field_20;
  52.    // $FF: renamed from: h int
  53.    int field_21;
  54.    public Thread thread;
  55.    // $FF: renamed from: f javax.microedition.lcdui.Graphics
  56.    Graphics field_22;
  57.    // $FF: renamed from: case int
  58.    int field_23;
  59.    // $FF: renamed from: try int
  60.    int field_24;
  61.    // $FF: renamed from: do int
  62.    int field_25;
  63.    // $FF: renamed from: c int
  64.    int field_26;
  65.    // $FF: renamed from: long int
  66.    int field_27;
  67.    // $FF: renamed from: o java.util.Random
  68.    Random field_28;
  69.    public boolean bGameStarted;
  70.    public boolean bAppThread;
  71.    // $FF: renamed from: if a
  72.    KnightCanvas$a field_29 = new KnightCanvas$a(this);
  73.    // $FF: renamed from: byte boolean
  74.    boolean field_30;
  75.  
  76.    public KnightCanvas(MIDlet var1) {
  77.       try {
  78.          this.field_14 = var1;
  79.          this.bGameStarted = false;
  80.          this.field_28 = new Random((new Date()).getTime());
  81.          this.field_15 = Image.createImage(((Canvas)this).getWidth(), ((Canvas)this).getHeight());
  82.          this.field_22 = this.field_15.getGraphics();
  83.          this.field_16 = Image.createImage("/res/knight.png");
  84.          this.field_17 = Image.createImage("/res/softex_bw.png");
  85.          this.field_19 = (((Canvas)this).getWidth() - 1) / 12;
  86.          this.field_18 = (((Canvas)this).getHeight() - Font.getDefaultFont().getHeight() - 1) / 12;
  87.          this.field_20 = new boolean[this.field_18][this.field_19];
  88.          if (this.field_19 < 3 || this.field_18 < 3) {
  89.             throw new Exception("Canvas Height/Width not supported");
  90.          }
  91.       } catch (Exception var3) {
  92.       }
  93.  
  94.    }
  95.  
  96.    public void newGame(int var1, int var2, boolean var3) {
  97.       try {
  98.          this.bGameStarted = false;
  99.          if (var1 < 12 || var2 > 10) {
  100.             throw new Exception("Params out of range");
  101.          }
  102.  
  103.          this.field_1 = var1;
  104.          this.field_0 = var2;
  105.          this.field_19 = (((Canvas)this).getWidth() - 1) / this.field_1;
  106.          this.field_18 = (((Canvas)this).getHeight() - Font.getDefaultFont().getHeight() - 1) / this.field_1;
  107.          if (this.field_19 < 3 || this.field_18 < 3) {
  108.             throw new Exception("Canvas Height/Width not supported");
  109.          }
  110.  
  111.          for(int var4 = 0; var4 < this.field_18; ++var4) {
  112.             for(int var5 = 0; var5 < this.field_19; ++var5) {
  113.                this.field_20[var4][var5] = false;
  114.             }
  115.          }
  116.  
  117.          this.field_24 = Math.abs(this.field_28.nextInt()) % this.field_18;
  118.          this.field_25 = Math.abs(this.field_28.nextInt()) % this.field_19;
  119.          this.field_23 = 0;
  120.          this.field_20[this.field_24][this.field_25] = true;
  121.          this.field_21 = 0;
  122.          this.bGameStarted = true;
  123.       } catch (Exception var6) {
  124.       }
  125.  
  126.    }
  127.  
  128.    public void run() {
  129.       short var4;
  130.       try {
  131.          for(int var5 = -1; this.bAppThread; Thread.sleep((long)var4)) {
  132.             if (!this.bGameStarted) {
  133.                var4 = 150;
  134.             } else {
  135.                var4 = 100;
  136.                var5 = this.field_21;
  137.                this.field_22.setColor(-1);
  138.                this.field_22.fillRect(0, 0, this.field_15.getWidth(), this.field_15.getHeight());
  139.                this.field_22.setColor(0);
  140.  
  141.                for(int var1 = 0; var1 < this.field_18; ++var1) {
  142.                   for(int var2 = 0; var2 < this.field_19; ++var2) {
  143.                      this.field_22.drawRect(var2 * this.field_1, var1 * this.field_1, this.field_1, this.field_1);
  144.                      if (this.field_20[var1][var2] && (var1 != this.field_24 || var2 != this.field_25)) {
  145.                         this.field_22.drawLine(var2 * this.field_1, var1 * this.field_1, var2 * this.field_1 + this.field_1, var1 * this.field_1 + this.field_1);
  146.                         this.field_22.drawLine(var2 * this.field_1 + this.field_1, var1 * this.field_1, var2 * this.field_1, var1 * this.field_1 + this.field_1);
  147.                      }
  148.                   }
  149.                }
  150.  
  151.                int var7 = this.field_1 / 2;
  152.                this.field_22.drawImage(this.field_16, this.field_25 * this.field_1 + var7, this.field_24 * this.field_1 + var7, 3);
  153.                switch (var5) {
  154.                   case 0:
  155.                      var4 = 50;
  156.                      this.field_22.drawString("User Turn", 0, ((Canvas)this).getHeight() - 1, 36);
  157.                      if (!this.method_5(this.field_22)) {
  158.                         this.field_21 = 4;
  159.                      }
  160.                      break;
  161.                   case 1:
  162.                      this.field_22.drawString("User Moves..", 0, ((Canvas)this).getHeight() - 1, 36);
  163.                      if (!this.method_0()) {
  164.                         this.field_20[this.field_24][this.field_25] = true;
  165.                         if (!this.method_4()) {
  166.                            this.field_21 = 5;
  167.                         } else {
  168.                            this.field_21 = 2;
  169.                         }
  170.                      }
  171.                      break;
  172.                   case 2:
  173.                      this.field_22.drawString("CPU Thinks..", 0, ((Canvas)this).getHeight() - 1, 36);
  174.                      break;
  175.                   case 3:
  176.                      var4 = 150;
  177.                      this.field_22.drawString("CPU Moves..", 0, ((Canvas)this).getHeight() - 1, 36);
  178.                      if (!this.method_0()) {
  179.                         this.field_20[this.field_24][this.field_25] = true;
  180.                         if (!this.method_4()) {
  181.                            this.field_21 = 4;
  182.                         } else {
  183.                            this.field_21 = 0;
  184.                         }
  185.                      }
  186.                      break;
  187.                   default:
  188.                      this.field_22.drawString(this.field_21 == 4 ? "CPU Won" : "User Won", 0, ((Canvas)this).getHeight() - 1, 36);
  189.                }
  190.             }
  191.  
  192.             ((Canvas)this).repaint();
  193.             ((Canvas)this).serviceRepaints();
  194.             if (this.bGameStarted && var5 == 2) {
  195.                this.method_7();
  196.             }
  197.          }
  198.       } catch (Exception var6) {
  199.       }
  200.  
  201.    }
  202.  
  203.    public void paint(Graphics var1) {
  204.       try {
  205.          if (this.bGameStarted) {
  206.             var1.drawImage(this.field_15, 0, 0, 20);
  207.          } else {
  208.             var1.setColor(-1);
  209.             var1.fillRect(0, 0, ((Canvas)this).getWidth(), ((Canvas)this).getHeight());
  210.             var1.setColor(0);
  211.             var1.setFont(Font.getFont(0, 1, 16));
  212.             var1.drawString("K N I G H T", ((Canvas)this).getWidth() / 2, 0, 17);
  213.             var1.setFont(Font.getDefaultFont());
  214.             var1.drawImage(this.field_17, ((Canvas)this).getWidth() / 2, ((Canvas)this).getHeight() / 2, 3);
  215.          }
  216.       } catch (Exception var3) {
  217.       }
  218.  
  219.    }
  220.  
  221.    // $FF: renamed from: do () boolean
  222.    boolean method_0() {
  223.       boolean var1 = true;
  224.       if (this.field_24 < this.field_26) {
  225.          ++this.field_24;
  226.       } else if (this.field_24 > this.field_26) {
  227.          --this.field_24;
  228.       } else if (this.field_25 < this.field_27) {
  229.          ++this.field_25;
  230.       } else if (this.field_25 > this.field_27) {
  231.          --this.field_25;
  232.       } else {
  233.          var1 = false;
  234.       }
  235.  
  236.       return var1;
  237.    }
  238.  
  239.    // $FF: renamed from: do (int, int) int
  240.    int method_1(int var1, int var2) {
  241.       int var3 = var2 + 2;
  242.       if (var1 < 2) {
  243.          var3 = var2 - 2;
  244.       } else if (var1 != 2 && var1 != 7) {
  245.          if (var1 == 3 || var1 == 6) {
  246.             var3 = var2 + 1;
  247.          }
  248.       } else {
  249.          var3 = var2 - 1;
  250.       }
  251.  
  252.       return var3;
  253.    }
  254.  
  255.    // $FF: renamed from: if (int, int) int
  256.    int method_2(int var1, int var2) {
  257.       int var3 = var2 - 2;
  258.       if (var1 != 1 && var1 != 4) {
  259.          if (var1 != 2 && var1 != 3) {
  260.             if (var1 == 0 || var1 == 5) {
  261.                var3 = var2 - 1;
  262.             }
  263.          } else {
  264.             var3 = var2 + 2;
  265.          }
  266.       } else {
  267.          var3 = var2 + 1;
  268.       }
  269.  
  270.       return var3;
  271.    }
  272.  
  273.    // $FF: renamed from: a (int, int) boolean
  274.    boolean method_3(int var1, int var2) {
  275.       return var1 >= 0 && var1 < this.field_18 && var2 >= 0 && var2 < this.field_19 && !this.field_20[var1][var2];
  276.    }
  277.  
  278.    // $FF: renamed from: if () boolean
  279.    boolean method_4() {
  280.       return this.method_5((Graphics)null);
  281.    }
  282.  
  283.    // $FF: renamed from: a (javax.microedition.lcdui.Graphics) boolean
  284.    boolean method_5(Graphics var1) {
  285.       int var2 = -1;
  286.       int var3 = -1;
  287.  
  288.       int var4;
  289.       for(var4 = 0; var4 < 8; ++var4) {
  290.          var2 = this.method_1(this.field_23, this.field_24);
  291.          var3 = this.method_2(this.field_23, this.field_25);
  292.          if (this.method_3(var2, var3)) {
  293.             if (var1 != null) {
  294.                var1.drawRect(var3 * this.field_1 + 2, var2 * this.field_1 + 2, this.field_1 - 4, this.field_1 - 4);
  295.             }
  296.             break;
  297.          }
  298.  
  299.          this.field_23 = (this.field_23 + 1) % 8;
  300.       }
  301.  
  302.       return var4 < 8;
  303.    }
  304.  
  305.    public void keyPressed(int var1) {
  306.       this.method_6(var1);
  307.    }
  308.  
  309.    // $FF: renamed from: a (int) void
  310.    void method_6(int var1) {
  311.       if (this.bAppThread && this.bGameStarted && this.field_21 == 0) {
  312.          int var2 = ((Canvas)this).getGameAction(var1);
  313.          switch (var2) {
  314.             case 8:
  315.                int var3 = this.method_1(this.field_23, this.field_24);
  316.                int var4 = this.method_2(this.field_23, this.field_25);
  317.                if (this.method_3(var3, var4)) {
  318.                   this.field_26 = var3;
  319.                   this.field_27 = var4;
  320.                   this.field_21 = 1;
  321.                }
  322.                break;
  323.             default:
  324.                this.field_23 = (this.field_23 + 1) % 8;
  325.          }
  326.  
  327.       }
  328.    }
  329.  
  330.    // $FF: renamed from: a () void
  331.    void method_7() throws Exception {
  332.       if (this.field_28.nextInt() % 2 == 0) {
  333.          this.field_30 = true;
  334.       } else {
  335.          this.field_30 = false;
  336.       }
  337.  
  338.       this.method_8(1, this.field_24, this.field_25);
  339.       if (!this.method_3(this.field_26, this.field_27)) {
  340.          throw new Exception("Logical Error: Invalid new position for CPU - (" + this.field_26 + "," + this.field_27 + ")");
  341.       } else {
  342.          this.field_21 = 3;
  343.       }
  344.    }
  345.  
  346.    // $FF: renamed from: a (int, int, int) void
  347.    void method_8(int var1, int var2, int var3) {
  348.       int var4 = 0;
  349.       int var5 = 0;
  350.       int var6 = 0;
  351.       if (var1 <= this.field_0) {
  352.          boolean var9 = false;
  353.          if (var1 % 2 == 0) {
  354.             var4 = 99999;
  355.          } else {
  356.             var4 = -99999;
  357.          }
  358.  
  359.          var6 = -99999;
  360.  
  361.          for(int var10 = 0; var10 < 8; ++var10) {
  362.             int var7 = this.method_1(var10, var2);
  363.             int var8 = this.method_2(var10, var3);
  364.             if (this.method_3(var7, var8)) {
  365.                var9 = true;
  366.                this.field_20[var7][var8] = true;
  367.                this.method_8(var1 + 1, var7, var8);
  368.                var5 += this.field_29.a;
  369.                if (var1 % 2 == 0) {
  370.                   if (this.field_29.a < var4 || this.field_29.a == var4 && this.field_29.if > var6) {
  371.                      var4 = this.field_29.a;
  372.                      var6 = this.field_29.if;
  373.                   }
  374.                } else if (this.field_29.a > var4 || this.field_29.a == var4 && this.field_29.if > var6) {
  375.                   var4 = this.field_29.a;
  376.                   var6 = this.field_29.if;
  377.                   if (var1 == 1) {
  378.                      this.field_26 = var7;
  379.                      this.field_27 = var8;
  380.                   }
  381.                }
  382.  
  383.                this.field_20[var7][var8] = false;
  384.             }
  385.          }
  386.  
  387.          if (!var9) {
  388.             var4 = (var1 + 1) / 2;
  389.             var4 = this.field_0 + 1 - var4;
  390.             if (var1 % 2 != 0) {
  391.                var4 *= -1;
  392.             }
  393.          }
  394.       }
  395.  
  396.       this.field_29.a = var4;
  397.       this.field_29.if = var5;
  398.    }
  399. }
  400.